package com.stylefeng.guns.common.persistence.model;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.stylefeng.guns.common.annotion.EmpCode;
import com.stylefeng.guns.common.annotion.Point;
import com.stylefeng.guns.common.annotion.PointType;
import com.stylefeng.guns.common.annotion.Year;
import com.stylefeng.guns.common.constant.PointConstType;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * <p>
 *  优秀兼职培训师
 * </p>
 *
 * @author stylefeng
 * @since 2018-01-24
 */
@PointType(PointConstType.trainerExcellentPoints)
@TableName("trainer_excellent_points")
public class TrainerExcellentPoints extends Model<TrainerExcellentPoints> {

    private static final long serialVersionUID = 1L;

	/**
	 * 主键ID
	 */
	@TableId(value="id", type= IdType.UUID)
	private String id;
    /**
     * 年度
     */
	@Year
	@Excel(name = "年度",width = 20)
	private String year;
    /**
     * 员工编号
     */
	@EmpCode
	@TableField("emp_code")
	@Excel(name = "员工编号",width = 20)
	private String empCode;
    /**
     * 员工姓名
     */
	@TableField("emp_name")
	@Excel(name = "员工姓名",width = 20)
	private String empName;
    /**
     * 岗位类别
     */
	@TableField("post_type")
	@Excel(name = "类别",width = 20)
	private String postType;
    /**
     * 专业
     */
	@Excel(name = "专业",width = 20)
	private String major;
    /**
     * 获奖级别编码
     */
	@TableField("authen_code")
	private String authenCode;
    /**
     * 获奖级别
     */
	@TableField("authen")
	@Excel(name = "获奖级别",width = 20)
	private String authen;
    /**
     * 发证机关
     */
	@TableField("issuing_organ")
	@Excel(name = "发证单位",width = 20)
	private String issuingOrgan;
    /**
     * 发证时间
     */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@TableField("issuing_date")
	@Excel(name = "发证时间", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd",width = 20)
	private Date issuingDate;

	@TableField(exist=false)
	private String strIssuingDate;
    /**
     * 积分
     */
	@Point
	@Excel(name = "积分",width = 15)
	private Double integral;
    /**
     * 创建日期
     */
	@TableField("create_date")
	private Date createDate;
    /**
     * 数据来源
     */
	@TableField("data_origin")
	private String dataOrigin;


	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getAuthen() {
		return authen;
	}

	public void setAuthen(String authen) {
		this.authen = authen;
	}

	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	public String getEmpCode() {
		return empCode;
	}

	public void setEmpCode(String empCode) {
		this.empCode = empCode;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public String getPostType() {
		return postType;
	}

	public void setPostType(String postType) {
		this.postType = postType;
	}

	public String getMajor() {
		return major;
	}

	public void setMajor(String major) {
		this.major = major;
	}

	public String getAuthenCode() {
		return authenCode;
	}

	public void setAuthenCode(String authenCode) {
		this.authenCode = authenCode;
	}

	public String getIssuingOrgan() {
		return issuingOrgan;
	}

	public void setIssuingOrgan(String issuingOrgan) {
		this.issuingOrgan = issuingOrgan;
	}

	public Date getIssuingDate() {
		return issuingDate;
	}

	public void setIssuingDate(Date issuingDate) {
		this.issuingDate = issuingDate;
	}

	public Double getIntegral() {
		return integral;
	}

	public void setIntegral(Double integral) {
		this.integral = integral;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public String getDataOrigin() {
		return dataOrigin;
	}

	public void setDataOrigin(String dataOrigin) {
		this.dataOrigin = dataOrigin;
	}

	public String getStrIssuingDate() {
		return strIssuingDate;
	}

	public void setStrIssuingDate(String strIssuingDate) {
		this.strIssuingDate = strIssuingDate;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}

	@Override
	public String toString() {
		return "TrainerExcellentPoints{" +
			"id=" + id +
			", year=" + year +
			", empCode=" + empCode +
			", empName=" + empName +
			", postType=" + postType +
			", major=" + major +
			", authenCode=" + authenCode +
			", issuingOrgan=" + issuingOrgan +
			", issuingDate=" + issuingDate +
			", integral=" + integral +
			", createDate=" + createDate +
			", dataOrigin=" + dataOrigin +
			"}";
	}
}
